# coding=UTF-8

from pylab import *
from PIL import Image

def histeq(im,nbr_bins=256):
    """灰度图像的直方图均衡化
    返回的是经处理的图像，以及累积分布函数
    """
    imhist,bins =histogram(im.flatten(),nbr_bins,normed=True)
    cdf = imhist.cumsum()
    cdf = 255*cdf/cdf[-1]

    im2=interp(im.flatten(),bins[:-1],cdf)

    return im2.reshape(im.shape),cdf

#test
im=array(Image.open('misc_pic\empire.jpg').convert('L'))
im2,cdf=histeq(im)
gray()
imshow(im2)
show()